class Job(QtCore.QThread):#注意这里使用的是qt自己本身的线程，而不能用python自己的线程
    signal2=QtCore.pyqtSignal(tuple)#因为这个信号槽要继承于Qobject，不然会发生没有emit，connect函数的报错，括号里面填写的是发射的数据类型
    def signal2emit(self,var:tuple):
        self.signal2.emit(var)#朝connect的函数发射一个tuple

    def __init__(self, *args, **kwargs):#这里自己实现
        super(Job, self).__init__(*args, **kwargs)
        self.__flag = threading.Event()     # 用于暂停线程的标识
        self.__flag.set()       # 设置为True
        self.__running = threading.Event()      # 用于停止线程的标识
        self.__running.set()      # 将running设置为True
        self.signal2.connect(setItem)#连接发射函数

    def run(self):
        global SystemTime,TimePice#声明要用的全局变量
        while self.__running.isSet():#如果被设置为了true就继续，false就终止了
            self.__flag.wait()      # 为True时立即返回, 为False时阻塞直到内部的标识位为True后返回
            ###################
            #这里写线程要干的事情#
            ###################
            time.sleep(1)

    def pause(self):
        self.__flag.clear()     # 设置为False, 让线程阻塞

    def resume(self):
        self.__flag.set()    # 设置为True, 让线程停止阻塞

    def stop(self):
        self.__flag.set()       # 将线程从暂停状态恢复, 如何已经暂停的话
        self.__running.clear()        # 设置为False
